#!/data/data/com.termux/files/usr/bin/env bash

if [[ ! -e $(command -v termux-change-repo) ]];then
  printf "[!] 仅支持在 Termux 进行构建\n"
  return 126 &>/dev/null || exit 126
fi

printf "[?] 请阅读以下内容:\n"
printf "1. 本脚本仅支持在 Termux 环境下准备和构建 Termux:Monet 项目\n"
printf "2. 本脚本除了判断 termux-change-repo 命令存在外没有任何判断逻辑，请自行解决此后产生的任何问题\n"
printf "3. 正常情况下项目构建会相当顺利，请保持网络环境畅通\n"
printf "4. 中途尽量不要干涉当前会话，脚本执行时全程不需要手动操作\n"

printf "\n[*] 10s 后将开始准备和构建，Ctrl - C 以取消执行...\n"
sleep 10

TERMUX_REPO="https://mirrors.ustc.edu.cn/termux/apt/termux-main"
APP_REPO="https://githubfast.com/KitsunedFox/termux-monet"
NDK_REPO="https://githubfast.com/zongou/sndk"
GITHUB_PROXY_URL="https://mirror.ghproxy.com"
GRADLE_MORROR="mirrors.cloud.tencent.com/gradle"
APP_DIR=$HOME/$(basename "$APP_REPO")
NDK_DIR=$HOME/$(basename "$NDK_REPO")

printf "[*] 正准备初始化和切换源...\n"
yes | pkg up -y
[ -L $PREFIX/etc/termux/chosen_mirrors] &&
unlink $PREFIX/etc/termux/chosen_mirrors
ln -s $PREFIX/etc/termux/mirrors/chinese_mainland/mirrors.ustc.edu.cn $PREFIX/etc/termux/chosen_mirrors
pkg --check-mirror update
pkg i git -y

printf "[*] 需要克隆 2 个项目:\n"
printf "%s\n" $APP_DIR $NDK_DIR
git clone --depth=1 $APP_REPO $APP_DIR
git clone --depth=1 $NDK_REPO $NDK_DIR

printf "[*] 执行 ndk 安装脚本...\n"
cd $NDK_DIR
./termux_setup_android_dev.sh
source $PREFIX/etc/profile

printf "[*] 正准备配置构建...\n"
cd $APP_DIR/
NDK_VER=$(printf $(cat jitpack.yml | awk '{print $2}' | tr -d \"))
printf "%s\n" "ndk.dir=$ANDROID_NDK_HOME" >> local.properties
sed -i "s#https://github.com#$GITHUB_PROXY_URL/github.com#g" app/src/main/java/com/termux/app/TermuxInstaller.java
sed -i "s#services.gradle.org/distributions#$GRADLE_MORROR#g" gradle/wrapper/gradle-wrapper.properties
sed -i "4a\    ndkVersion \"$NDK_VER\"" termux-shared/build.gradle
sed -i "s#Termux:Monet#Termux#g" app/src/main/res/values*/strings.xml

printf "[*] 开始编译应用...\n"
./gradlew assembleDebug --info
ls app/build/outputs/apk/debug/